package com.github.xuemingyu.springboot.acticitycloud.service;

import com.bidanet.bdcms.core.vo.Page;
import com.github.xuemingyu.springboot.acticitycloud.entity.Activity;
import com.github.xuemingyu.springboot.acticitycloud.entity.enumEntity.ActivityStatus;
import com.taobao.api.ApiException;

public interface ActivityService extends BaseService<Activity> {
    /**
     * 获取活动列表
     *
     * @param activity
     * @param page
     */
    void queryLike(Activity activity, Page<Activity> page) throws ApiException;


    void pcQuery(Activity activity, Page<Activity> page, String userId) throws ApiException;

    /**
     * 添加活动
     *
     * @param activity
     */
    void insert(Activity activity) throws ApiException;

    /**
     * 修改活动信息
     *
     * @param activity
     */
    void update(Activity activity);

    /**
     * 删除活动
     *
     * @param activityList
     */
    void delete(String activityList);

    /**
     * 活动发布
     *
     * @param activityList
     */
    void publishActivity(String activityList);

    void cancelActivity(Long id, String remark);

    /**
     * 活动置顶
     *
     * @param activityList
     */
    void upActivity(String activityList);

    /**
     * 获取活动报名名单
     *
     * @param activityId
     */
    void applyList(Long activityId);

    /**
     * 我参与的活动
     *
     * @param userId
     * @param status
     * @param page
     */
    void myJion(String userId, ActivityStatus status, Page page);


    Activity findActivity(Long id);


    void updatePublish(Activity activity);

    /**
     * pc新增常规活动
     *
     * @param activity
     */
    void addPCActivity(Activity activity);

    /**
     * app新增常规活动
     *
     * @param activity
     */
    void addAppActivity(Activity activity);

    /**
     * 我创建的活动
     *
     * @param activity
     * @param page
     */
    void queryAppActivity(Activity activity, Page<Activity> page);

    /**
     * 撤销活动
     *
     * @param id
     */
    void cancelActicity(Long id, String cancelRemark);

    /**
     * 设置报名模板
     *
     * @param activityId
     * @param tempLateId
     */
    void addActivityTemplate(Long activityId, Long tempLateId);

    /**
     * 审批活动
     *
     * @param activity
     */
    void auditActivity(Activity activity) throws ApiException;

    /**
     * 待我审批列表
     *
     * @param activity
     * @param page
     */
    void queryWaitAudit(Activity activity, Page<Activity> page);

    /**
     * 我已审批列表
     * @param activity
     * @param page
     */
    void queryAlreadyAudit(Activity activity, Page<Activity> page);
}
